1 : <?php
2 :
3 1 : class WordPressCategorizer {
4 :
5 : private $db;
6 :
7 : private $userID;
8 :
9 : public function __construct( $db, $userID ) {
10 0 : $this->userID = $userID;
11 0 : $this->db = $db;
12 0 : }
13 :
14 : /**
15 : * Wandelt Semester im Datenbankformat in normales Format um.
16 : * Aus courses/classes/class.Course.inc.php kopiert.
17 : * @param semester Semester im Datenbankformat (Bsp.: "03WS")
18 : * @return Semester in der Form "WS 03/04" bzw. "SS 04"
19 : */
20 : private static function semesterDBtoString($semester) {
21 0 : $semesterType = substr($semester, 2);
22 0 : $semesterYear = substr($semester, 0, 2);
23 0 : if($semesterType === "WS") {
24 0 : $singleDigit = false;
25 0 : if(substr($semesterYear, 0, 1) === "0") {
26 0 : $singleDigit = true;
27 0 : $year2 = ((int) substr($semesterYear, 1)) + 1;
28 0 : if($year2 > 9) {
29 0 : $singleDigit = false;
30 0 : }
31 0 : }
32 0 : $semesterYear = $semesterYear."/";
33 0 : if($singleDigit === true) {
34 0 : $semesterYear = $semesterYear."0";
35 0 : }
36 0 : $semesterYear = $semesterYear.$year2;
37 0 : }
38 0 : return $semesterType." ".$semesterYear;
39 : }
40 :
41 : public function getUserCourses() {
42 0 : global $settings;
43 :
44 0 : $userID = Data::toMysql( $_SESSION['userid'] );
45 0 : $courseID = Data::toMysql( $_SESSION['course'] );
46 0 : if ($_SESSION['usergroup'] == ADMIN || $_SESSION['usergroup'] == SEKRETARIAT) $sql = "SELECT c.ID, c.ShortName AS SN, u.ShortName, c.Semester
47 : FROM courses AS c
48 : RIGHT JOIN user_course AS uc
49 : ON c.ID = uc.courseID
50 : LEFT JOIN user AS u
51 : ON uc.userID = u.ID
52 : WHERE ((u.Usergroup = 3 AND uc.differentUsergroup = 0)
53 : OR uc.differentUsergroup = 3)
54 : AND c.closed = 0 " .
55 0 : "ORDER BY c.ShortName, c.ID";
56 : else $sql = "SELECT c.ID, c.ShortName AS SN, u.ShortName, c.Semester
57 : FROM (user_course AS uc1, user AS u)
58 : RIGHT JOIN user_course AS uc2
59 : ON uc1.courseID = uc2.courseID
60 : RIGHT JOIN courses AS c
61 : ON uc1.courseID = c.ID
62 : WHERE ((u.Usergroup = 3 AND uc2.differentUsergroup = 0)
63 : OR uc2.differentUsergroup = 3)
64 0 : AND uc1.userID = ".$userID."
65 : AND u.ID = uc2.userID
66 0 : AND c.closed = 0 " .
67 0 : "ORDER BY c.ShortName, c.ID";
68 0 : $courses = (array) $this->db->get_results($sql);
69 :
70 0 : return $courses;
71 : }
72 :
73 : public function getUserCoursesAsCategories() {
74 0 : $courses = $this->getUserCourses();
75 0 : $categories = array();
76 :
77 0 : foreach ( $courses as $course ) {
78 0 : if ( isset($categories[$course->ID]) ) {
79 : // bei schon vorhandenem Kurs-String, neuen Dozent in den String einfuegen
80 0 : $categories[$course->ID] = preg_replace(
81 0 : "@\((\w+)\)@",
82 0 : "($1, " . $course->ShortName . ")",
83 0 : $categories[$course->ID]
84 0 : );
85 0 : } else {
86 0 : $description = $course->SN . " (" . $course->ShortName . ") ";
87 0 : $description .= self::semesterDBtoString( $course->Semester );
88 0 : $categories[$course->ID] = $description;
89 : }
90 0 : }
91 :
92 0 : return $categories;
93 : }
94 :
95 : public function getCourseString( $courseID ) {
96 0 : $categories = $this->getUserCoursesAsCategories();
97 0 : return $categories[ $courseID ];
98 : }
99 : }
100 :
101 : ?>
|